Java (software platform)
part 18/61 · 104.6 KB total
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
The Java virtual machine heap is the area of memory used by the JVM for dynamic memory allocation.cite-ref-hotspotfaq-41-0[41]
In HotSpot the heap is divided into generations:
• The young generation stores short-lived objects that are created and immediately garbage collected.
• Objects that persist longer are moved to the old generation (also called the tenured generation). This memory is subdivided into (two) Survivors spaces where the objects that survived the first and next garbage collections are stored.
Originally there was no permanent generation, and objects and classes were stored together in the same area. But as class unloading occurs much more rarely than objects are collected, moving class structures to a specific area allowed significant performance improvements.cite-ref-permgen-42-1[42]
Security
The Java JRE is installed on a large number of computers. End users with an out-of-date version of JRE therefore are vulnerable to many known attacks. This led to the widely shared belief that Java is inherently insecure.cite-ref-45[45] Since Java 1.7, Oracle's JRE for Windows includes automatic update functionality.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────